package org.deng.learn.concurrent.basic;

import java.util.concurrent.TimeUnit;

/**
 * @author 邓力宾
 * @date 2020/5/15 下午4:43
 * @desc
 * ThreadLocal 的作用是提供线程内的局部变量，这种变量在线程的生命周期内起作用，
 *  减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果滥用ThreadLocal，就可能会导致内存泄漏。
 */
public class ThreadLocalDemo {
    private static  ThreadLocal<String> threadLocal = new ThreadLocal<>();

    public static void main(String[] args){

        new Thread(()->{
            threadLocal.set("hello");
        }).start();

        new Thread(()->{
            try {
                TimeUnit.SECONDS.sleep(2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(threadLocal.get());//其他线程设置的变量 该线程获取不到
        }).start();
    }
}
